home *** CD-ROM | disk | FTP | other *** search
- /* So einfach ist der extrem leistungsfähige
- * Boyer-Moore-Algorithmus zu implementieren
- */
-
- extern long Skip[];
-
- long BM_Search(unsigned char *Puffer,
- unsigned char *Pattern,
- long size)
- {
- long i,j,M=strlen(Pattern),N=size,t;
-
- for( i=M-1,j=M-1; j>=0; i--, j-- ) {
- while( Puffer[i] != Pattern[j] ) {
- t=Skip[Puffer[i]];
- i+=(M-j>t)?M-j:t;
- if( i>=N )
- return N;
- j=M-1;
- }
- M=strlen(Pattern);
- }
- return i;
- }
-